
/* main function */
void AES__ (/*inputs*/ DATATYPE plain__0__,DATATYPE plain__1__,DATATYPE plain__2__,DATATYPE plain__3__,DATATYPE plain__4__,DATATYPE plain__5__,DATATYPE plain__6__,DATATYPE plain__7__, /*outputs*/ DATATYPE* cipher__0__,DATATYPE* cipher__1__,DATATYPE* cipher__2__,DATATYPE* cipher__3__,DATATYPE* cipher__4__,DATATYPE* cipher__5__,DATATYPE* cipher__6__,DATATYPE* cipher__7__) {
  
  // Variables declaration
  DATATYPE MixColumn___1__tmp14_;
  DATATYPE MixColumn___1__tmp15_;
  DATATYPE MixColumn___1__tmp16_;
  DATATYPE MixColumn___1__tmp18_;
  DATATYPE MixColumn___1__tmp19_;
  DATATYPE MixColumn___1__tmp22_;
  DATATYPE MixColumn___1__tmp23_;
  DATATYPE MixColumn___1__tmp25_;
  DATATYPE MixColumn___1__tmp26_;
  DATATYPE MixColumn___1__tmp31_;
  DATATYPE MixColumn___1__tmp32_;
  DATATYPE MixColumn___1__tmp33_;
  DATATYPE MixColumn___1__tmp35_;
  DATATYPE MixColumn___1__tmp36_;
  DATATYPE MixColumn___1__tmp3_;
  DATATYPE MixColumn___1__tmp41_;
  DATATYPE MixColumn___1__tmp42_;
  DATATYPE MixColumn___1__tmp43_;
  DATATYPE MixColumn___1__tmp45_;
  DATATYPE MixColumn___1__tmp46_;
  DATATYPE MixColumn___1__tmp49_;
  DATATYPE MixColumn___1__tmp4_;
  DATATYPE MixColumn___1__tmp50_;
  DATATYPE MixColumn___1__tmp52_;
  DATATYPE MixColumn___1__tmp53_;
  DATATYPE MixColumn___1__tmp56_;
  DATATYPE MixColumn___1__tmp57_;
  DATATYPE MixColumn___1__tmp59_;
  DATATYPE MixColumn___1__tmp5_;
  DATATYPE MixColumn___1__tmp60_;
  DATATYPE MixColumn___1__tmp64_;
  DATATYPE MixColumn___1__tmp67_;
  DATATYPE MixColumn___1__tmp6_;
  DATATYPE MixColumn___1__tmp8_;
  DATATYPE MixColumn___1__tmp9_;
  DATATYPE SubBytes___1_InBasisChange___1_t0__;
  DATATYPE SubBytes___1_InBasisChange___1_t1__;
  DATATYPE SubBytes___1_InBasisChange___1_t10__;
  DATATYPE SubBytes___1_InBasisChange___1_t11__;
  DATATYPE SubBytes___1_InBasisChange___1_t12__;
  DATATYPE SubBytes___1_InBasisChange___1_t2__;
  DATATYPE SubBytes___1_InBasisChange___1_t3__;
  DATATYPE SubBytes___1_InBasisChange___1_t4__;
  DATATYPE SubBytes___1_InBasisChange___1_t5__;
  DATATYPE SubBytes___1_InBasisChange___1_t6__;
  DATATYPE SubBytes___1_InBasisChange___1_t7__;
  DATATYPE SubBytes___1_InBasisChange___1_t8__;
  DATATYPE SubBytes___1_InBasisChange___1_t9__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___1_t0__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___1_t1__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___1_t3__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___1_t4__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___1_t5__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___1_t6__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___2_t0__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___2_t1__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___2_t3__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___2_t4__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___2_t5__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___2_t6__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___3_t1__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___3_t3__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___3_t4__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___3_t5__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___3_t6__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___4_t0__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___4_t1__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___4_t3__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___4_t4__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___4_t5__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___4_t6__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t0__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t1__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t3__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t4__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t5__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t6__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___2_t1__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___2_t3__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___2_t4__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___2_t5__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___2_t6__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t10__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t11__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t12__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t13__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t20__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t21__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t24__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t25__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t26__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t27__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t4__;
  DATATYPE SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t5__;
  DATATYPE SubBytes___1_Inv_GF256___1_t0__;
  DATATYPE SubBytes___1_Inv_GF256___1_t1__;
  DATATYPE SubBytes___1_Inv_GF256___1_t10__;
  DATATYPE SubBytes___1_Inv_GF256___1_t11__;
  DATATYPE SubBytes___1_Inv_GF256___1_t12__;
  DATATYPE SubBytes___1_Inv_GF256___1_t13__;
  DATATYPE SubBytes___1_Inv_GF256___1_t14__;
  DATATYPE SubBytes___1_Inv_GF256___1_t15__;
  DATATYPE SubBytes___1_Inv_GF256___1_t16__;
  DATATYPE SubBytes___1_Inv_GF256___1_t17__;
  DATATYPE SubBytes___1_Inv_GF256___1_t18__;
  DATATYPE SubBytes___1_Inv_GF256___1_t19__;
  DATATYPE SubBytes___1_Inv_GF256___1_t2__;
  DATATYPE SubBytes___1_Inv_GF256___1_t20__;
  DATATYPE SubBytes___1_Inv_GF256___1_t21__;
  DATATYPE SubBytes___1_Inv_GF256___1_t22__;
  DATATYPE SubBytes___1_Inv_GF256___1_t23__;
  DATATYPE SubBytes___1_Inv_GF256___1_t24__;
  DATATYPE SubBytes___1_Inv_GF256___1_t25__;
  DATATYPE SubBytes___1_Inv_GF256___1_t26__;
  DATATYPE SubBytes___1_Inv_GF256___1_t27__;
  DATATYPE SubBytes___1_Inv_GF256___1_t28__;
  DATATYPE SubBytes___1_Inv_GF256___1_t29__;
  DATATYPE SubBytes___1_Inv_GF256___1_t3__;
  DATATYPE SubBytes___1_Inv_GF256___1_t30__;
  DATATYPE SubBytes___1_Inv_GF256___1_t31__;
  DATATYPE SubBytes___1_Inv_GF256___1_t32__;
  DATATYPE SubBytes___1_Inv_GF256___1_t33__;
  DATATYPE SubBytes___1_Inv_GF256___1_t34__;
  DATATYPE SubBytes___1_Inv_GF256___1_t35__;
  DATATYPE SubBytes___1_Inv_GF256___1_t36__;
  DATATYPE SubBytes___1_Inv_GF256___1_t37__;
  DATATYPE SubBytes___1_Inv_GF256___1_t38__;
  DATATYPE SubBytes___1_Inv_GF256___1_t39__;
  DATATYPE SubBytes___1_Inv_GF256___1_t4__;
  DATATYPE SubBytes___1_Inv_GF256___1_t40__;
  DATATYPE SubBytes___1_Inv_GF256___1_t41__;
  DATATYPE SubBytes___1_Inv_GF256___1_t42__;
  DATATYPE SubBytes___1_Inv_GF256___1_t43__;
  DATATYPE SubBytes___1_Inv_GF256___1_t44__;
  DATATYPE SubBytes___1_Inv_GF256___1_t45__;
  DATATYPE SubBytes___1_Inv_GF256___1_t46__;
  DATATYPE SubBytes___1_Inv_GF256___1_t47__;
  DATATYPE SubBytes___1_Inv_GF256___1_t48__;
  DATATYPE SubBytes___1_Inv_GF256___1_t49__;
  DATATYPE SubBytes___1_Inv_GF256___1_t5__;
  DATATYPE SubBytes___1_Inv_GF256___1_t6__;
  DATATYPE SubBytes___1_Inv_GF256___1_t7__;
  DATATYPE SubBytes___1_Inv_GF256___1_t8__;
  DATATYPE SubBytes___1_Inv_GF256___1_t9__;
  DATATYPE SubBytes___1_OutBasisChange___1_t0__;
  DATATYPE SubBytes___1_OutBasisChange___1_t1__;
  DATATYPE SubBytes___1_OutBasisChange___1_t10__;
  DATATYPE SubBytes___1_OutBasisChange___1_t2__;
  DATATYPE SubBytes___1_OutBasisChange___1_t3__;
  DATATYPE SubBytes___1_OutBasisChange___1_t4__;
  DATATYPE SubBytes___1_OutBasisChange___1_t5__;
  DATATYPE SubBytes___1_OutBasisChange___1_t6__;
  DATATYPE SubBytes___1_OutBasisChange___1_t7__;
  DATATYPE SubBytes___1_OutBasisChange___1_t8__;
  DATATYPE SubBytes___1_OutBasisChange___1_t9__;
  DATATYPE _tmp69_0__;
  DATATYPE _tmp69_1__;
  DATATYPE _tmp69_2__;
  DATATYPE _tmp69_3__;
  DATATYPE _tmp69_4__;
  DATATYPE _tmp69_5__;
  DATATYPE _tmp69_6__;
  DATATYPE _tmp69_7__;


  // Instructions (body)
  SubBytes___1_InBasisChange___1_t0__ = XOR(plain__1__,plain__2__);
  SubBytes___1_InBasisChange___1_t1__ = XOR(plain__6__,plain__5__);
  SubBytes___1_InBasisChange___1_t2__ = XOR(plain__7__,SubBytes___1_InBasisChange___1_t0__);
  SubBytes___1_InBasisChange___1_t3__ = XOR(SubBytes___1_InBasisChange___1_t1__,plain__1__);
  SubBytes___1_InBasisChange___1_t4__ = XOR(plain__7__,plain__4__);
  SubBytes___1_InBasisChange___1_t5__ = XOR(SubBytes___1_InBasisChange___1_t4__,SubBytes___1_InBasisChange___1_t3__);
  SubBytes___1_InBasisChange___1_t6__ = XOR(plain__0__,SubBytes___1_InBasisChange___1_t4__);
  SubBytes___1_InBasisChange___1_t7__ = XOR(SubBytes___1_InBasisChange___1_t2__,plain__0__);
  SubBytes___1_InBasisChange___1_t8__ = XOR(plain__3__,SubBytes___1_InBasisChange___1_t6__);
  SubBytes___1_InBasisChange___1_t9__ = XOR(SubBytes___1_InBasisChange___1_t2__,plain__3__);
  SubBytes___1_InBasisChange___1_t10__ = XOR(plain__6__,SubBytes___1_InBasisChange___1_t8__);
  SubBytes___1_InBasisChange___1_t11__ = XOR(SubBytes___1_InBasisChange___1_t7__,SubBytes___1_InBasisChange___1_t1__);
  SubBytes___1_InBasisChange___1_t12__ = XOR(SubBytes___1_InBasisChange___1_t2__,plain__6__);
  SubBytes___1_Inv_GF256___1_t0__ = XOR(SubBytes___1_InBasisChange___1_t7__,SubBytes___1_InBasisChange___1_t9__);
  SubBytes___1_Inv_GF256___1_t1__ = XOR(SubBytes___1_InBasisChange___1_t12__,SubBytes___1_InBasisChange___1_t11__);
  SubBytes___1_Inv_GF256___1_t2__ = XOR(SubBytes___1_InBasisChange___1_t2__,SubBytes___1_InBasisChange___1_t10__);
  SubBytes___1_Inv_GF256___1_t3__ = XOR(SubBytes___1_InBasisChange___1_t11__,SubBytes___1_InBasisChange___1_t9__);
  SubBytes___1_Inv_GF256___1_t4__ = XOR(SubBytes___1_InBasisChange___1_t5__,plain__7__);
  SubBytes___1_Inv_GF256___1_t5__ = XOR(SubBytes___1_Inv_GF256___1_t0__,SubBytes___1_Inv_GF256___1_t1__);
  SubBytes___1_Inv_GF256___1_t6__ = AND(SubBytes___1_Inv_GF256___1_t1__,SubBytes___1_Inv_GF256___1_t2__);
  SubBytes___1_Inv_GF256___1_t7__ = OR(SubBytes___1_Inv_GF256___1_t2__,SubBytes___1_Inv_GF256___1_t1__);
  SubBytes___1_Inv_GF256___1_t8__ = AND(SubBytes___1_Inv_GF256___1_t0__,SubBytes___1_Inv_GF256___1_t4__);
  SubBytes___1_Inv_GF256___1_t9__ = OR(SubBytes___1_Inv_GF256___1_t4__,SubBytes___1_Inv_GF256___1_t0__);
  SubBytes___1_Inv_GF256___1_t10__ = XOR(SubBytes___1_Inv_GF256___1_t2__,SubBytes___1_Inv_GF256___1_t4__);
  SubBytes___1_Inv_GF256___1_t11__ = AND(SubBytes___1_Inv_GF256___1_t10__,SubBytes___1_Inv_GF256___1_t5__);
  SubBytes___1_Inv_GF256___1_t12__ = XOR(SubBytes___1_InBasisChange___1_t10__,plain__7__);
  SubBytes___1_Inv_GF256___1_t13__ = AND(SubBytes___1_Inv_GF256___1_t12__,SubBytes___1_Inv_GF256___1_t3__);
  SubBytes___1_Inv_GF256___1_t14__ = XOR(SubBytes___1_Inv_GF256___1_t13__,SubBytes___1_Inv_GF256___1_t9__);
  SubBytes___1_Inv_GF256___1_t15__ = XOR(SubBytes___1_Inv_GF256___1_t13__,SubBytes___1_Inv_GF256___1_t7__);
  SubBytes___1_Inv_GF256___1_t16__ = XOR(SubBytes___1_InBasisChange___1_t7__,SubBytes___1_InBasisChange___1_t12__);
  SubBytes___1_Inv_GF256___1_t17__ = XOR(SubBytes___1_InBasisChange___1_t2__,SubBytes___1_InBasisChange___1_t5__);
  SubBytes___1_Inv_GF256___1_t18__ = OR(SubBytes___1_Inv_GF256___1_t16__,SubBytes___1_Inv_GF256___1_t17__);
  SubBytes___1_Inv_GF256___1_t19__ = AND(SubBytes___1_Inv_GF256___1_t17__,SubBytes___1_Inv_GF256___1_t16__);
  SubBytes___1_Inv_GF256___1_t20__ = XOR(SubBytes___1_Inv_GF256___1_t19__,SubBytes___1_Inv_GF256___1_t6__);
  SubBytes___1_Inv_GF256___1_t21__ = XOR(SubBytes___1_Inv_GF256___1_t11__,SubBytes___1_Inv_GF256___1_t14__);
  SubBytes___1_Inv_GF256___1_t22__ = XOR(SubBytes___1_Inv_GF256___1_t8__,SubBytes___1_Inv_GF256___1_t15__);
  SubBytes___1_Inv_GF256___1_t23__ = XOR(SubBytes___1_Inv_GF256___1_t11__,SubBytes___1_Inv_GF256___1_t18__);
  SubBytes___1_Inv_GF256___1_t24__ = XOR(SubBytes___1_Inv_GF256___1_t8__,SubBytes___1_Inv_GF256___1_t20__);
  SubBytes___1_Inv_GF256___1_t25__ = XOR(SubBytes___1_Inv_GF256___1_t8__,SubBytes___1_Inv_GF256___1_t23__);
  SubBytes___1_Inv_GF256___1_t26__ = AND(SubBytes___1_InBasisChange___1_t11__,SubBytes___1_InBasisChange___1_t10__);
  SubBytes___1_Inv_GF256___1_t27__ = AND(SubBytes___1_InBasisChange___1_t9__,plain__7__);
  SubBytes___1_Inv_GF256___1_t28__ = AND(SubBytes___1_InBasisChange___1_t12__,SubBytes___1_InBasisChange___1_t2__);
  SubBytes___1_Inv_GF256___1_t29__ = OR(SubBytes___1_InBasisChange___1_t7__,SubBytes___1_InBasisChange___1_t5__);
  SubBytes___1_Inv_GF256___1_t30__ = XOR(SubBytes___1_Inv_GF256___1_t26__,SubBytes___1_Inv_GF256___1_t21__);
  SubBytes___1_Inv_GF256___1_t31__ = XOR(SubBytes___1_Inv_GF256___1_t27__,SubBytes___1_Inv_GF256___1_t22__);
  SubBytes___1_Inv_GF256___1_t32__ = XOR(SubBytes___1_Inv_GF256___1_t28__,SubBytes___1_Inv_GF256___1_t25__);
  SubBytes___1_Inv_GF256___1_t33__ = XOR(SubBytes___1_Inv_GF256___1_t29__,SubBytes___1_Inv_GF256___1_t24__);
  SubBytes___1_Inv_GF256___1_t34__ = XOR(SubBytes___1_Inv_GF256___1_t30__,SubBytes___1_Inv_GF256___1_t31__);
  SubBytes___1_Inv_GF256___1_t35__ = AND(SubBytes___1_Inv_GF256___1_t32__,SubBytes___1_Inv_GF256___1_t30__);
  SubBytes___1_Inv_GF256___1_t36__ = XOR(SubBytes___1_Inv_GF256___1_t33__,SubBytes___1_Inv_GF256___1_t35__);
  SubBytes___1_Inv_GF256___1_t37__ = AND(SubBytes___1_Inv_GF256___1_t34__,SubBytes___1_Inv_GF256___1_t36__);
  SubBytes___1_Inv_GF256___1_t38__ = XOR(SubBytes___1_Inv_GF256___1_t31__,SubBytes___1_Inv_GF256___1_t37__);
  SubBytes___1_Inv_GF256___1_t39__ = XOR(SubBytes___1_Inv_GF256___1_t32__,SubBytes___1_Inv_GF256___1_t33__);
  SubBytes___1_Inv_GF256___1_t40__ = XOR(SubBytes___1_Inv_GF256___1_t31__,SubBytes___1_Inv_GF256___1_t35__);
  SubBytes___1_Inv_GF256___1_t41__ = AND(SubBytes___1_Inv_GF256___1_t40__,SubBytes___1_Inv_GF256___1_t39__);
  SubBytes___1_Inv_GF256___1_t42__ = XOR(SubBytes___1_Inv_GF256___1_t33__,SubBytes___1_Inv_GF256___1_t41__);
  SubBytes___1_Inv_GF256___1_t43__ = XOR(SubBytes___1_Inv_GF256___1_t42__,SubBytes___1_Inv_GF256___1_t32__);
  SubBytes___1_Inv_GF256___1_t44__ = XOR(SubBytes___1_Inv_GF256___1_t36__,SubBytes___1_Inv_GF256___1_t42__);
  SubBytes___1_Inv_GF256___1_t45__ = AND(SubBytes___1_Inv_GF256___1_t33__,SubBytes___1_Inv_GF256___1_t44__);
  SubBytes___1_Inv_GF256___1_t46__ = XOR(SubBytes___1_Inv_GF256___1_t45__,SubBytes___1_Inv_GF256___1_t43__);
  SubBytes___1_Inv_GF256___1_t47__ = XOR(SubBytes___1_Inv_GF256___1_t45__,SubBytes___1_Inv_GF256___1_t36__);
  SubBytes___1_Inv_GF256___1_t48__ = AND(SubBytes___1_Inv_GF256___1_t38__,SubBytes___1_Inv_GF256___1_t47__);
  SubBytes___1_Inv_GF256___1_t49__ = XOR(SubBytes___1_Inv_GF256___1_t34__,SubBytes___1_Inv_GF256___1_t48__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___1_t0__ = XOR(SubBytes___1_Inv_GF256___1_t38__,SubBytes___1_Inv_GF256___1_t49__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___1_t1__ = AND(SubBytes___1_InBasisChange___1_t5__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___1_t0__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___1_t3__ = AND(SubBytes___1_Inv_GF256___1_t49__,SubBytes___1_Inv_GF256___1_t17__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___1_t4__ = AND(SubBytes___1_InBasisChange___1_t2__,SubBytes___1_Inv_GF256___1_t38__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___1_t5__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___1_t4__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___1_t3__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___1_t6__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___1_t1__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___1_t4__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t4__ = XOR(SubBytes___1_Inv_GF256___1_t42__,SubBytes___1_Inv_GF256___1_t38__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t5__ = XOR(SubBytes___1_Inv_GF256___1_t46__,SubBytes___1_Inv_GF256___1_t49__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t0__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t4__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t5__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t1__ = AND(SubBytes___1_Inv_GF256___1_t4__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t0__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t3__ = AND(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t5__,SubBytes___1_Inv_GF256___1_t10__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t4__ = AND(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t4__,SubBytes___1_Inv_GF256___1_t2__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t5__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t3__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t4__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t6__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t1__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t3__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___2_t0__ = XOR(SubBytes___1_Inv_GF256___1_t42__,SubBytes___1_Inv_GF256___1_t46__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___2_t1__ = AND(plain__7__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___2_t0__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___2_t3__ = AND(SubBytes___1_Inv_GF256___1_t46__,SubBytes___1_Inv_GF256___1_t12__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___2_t4__ = AND(SubBytes___1_InBasisChange___1_t10__,SubBytes___1_Inv_GF256___1_t42__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___2_t5__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___2_t4__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___2_t3__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___2_t6__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___2_t1__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___2_t4__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t10__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t6__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___2_t5__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t11__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___1_t5__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t6__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t12__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t5__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___2_t6__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t13__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___1_t6__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t5__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___2_t1__ = AND(SubBytes___1_Inv_GF256___1_t0__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___1_t0__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___2_t3__ = AND(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t5__,SubBytes___1_Inv_GF256___1_t5__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___2_t4__ = AND(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t4__,SubBytes___1_Inv_GF256___1_t1__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___2_t5__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___2_t3__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___2_t4__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___2_t6__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___2_t1__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___2_t3__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___3_t1__ = AND(SubBytes___1_InBasisChange___1_t9__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___2_t0__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___3_t3__ = AND(SubBytes___1_Inv_GF256___1_t46__,SubBytes___1_Inv_GF256___1_t3__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___3_t4__ = AND(SubBytes___1_InBasisChange___1_t11__,SubBytes___1_Inv_GF256___1_t42__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___3_t5__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___3_t4__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___3_t3__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___3_t6__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___3_t1__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___3_t4__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t20__ = XOR(SubBytes___1_Inv_GF256___1_t42__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t4__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t21__ = XOR(SubBytes___1_Inv_GF256___1_t46__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t5__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___4_t0__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t20__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t21__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___4_t1__ = AND(SubBytes___1_InBasisChange___1_t7__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___4_t0__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___4_t3__ = AND(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t21__,SubBytes___1_Inv_GF256___1_t16__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___4_t4__ = AND(SubBytes___1_InBasisChange___1_t12__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t20__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___4_t5__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___4_t4__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___4_t3__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___4_t6__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___4_t1__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___4_t4__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t24__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___2_t6__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___4_t5__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t25__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___2_t6__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___3_t5__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t26__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___2_t5__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___4_t6__);
  SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t27__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4_N___2_t5__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_Mul_GF4___3_t6__);
  SubBytes___1_OutBasisChange___1_t0__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t24__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t10__);
  SubBytes___1_OutBasisChange___1_t1__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t26__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t11__);
  SubBytes___1_OutBasisChange___1_t2__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t25__,SubBytes___1_OutBasisChange___1_t0__);
  SubBytes___1_OutBasisChange___1_t3__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t11__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t10__);
  SubBytes___1_OutBasisChange___1_t4__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t10__,SubBytes___1_OutBasisChange___1_t1__);
  SubBytes___1_OutBasisChange___1_t5__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t13__,SubBytes___1_OutBasisChange___1_t1__);
  SubBytes___1_OutBasisChange___1_t6__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t13__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t27__);
  SubBytes___1_OutBasisChange___1_t7__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t27__,SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t12__);
  SubBytes___1_OutBasisChange___1_t8__ = XOR(SubBytes___1_OutBasisChange___1_t2__,SubBytes___1_OutBasisChange___1_t6__);
  SubBytes___1_OutBasisChange___1_t9__ = XOR(SubBytes___1_Inv_GF256___1_Mul_GF16_2___1_t12__,SubBytes___1_OutBasisChange___1_t6__);
  SubBytes___1_OutBasisChange___1_t10__ = XOR(SubBytes___1_OutBasisChange___1_t3__,SubBytes___1_OutBasisChange___1_t9__);
  _tmp69_0__ = PERMUT_16(SubBytes___1_OutBasisChange___1_t6__,0,5,10,15,4,9,14,3,8,13,2,7,12,1,6,11);
  _tmp69_1__ = PERMUT_16(SubBytes___1_OutBasisChange___1_t7__,0,5,10,15,4,9,14,3,8,13,2,7,12,1,6,11);
  _tmp69_2__ = PERMUT_16(SubBytes___1_OutBasisChange___1_t0__,0,5,10,15,4,9,14,3,8,13,2,7,12,1,6,11);
  _tmp69_3__ = PERMUT_16(SubBytes___1_OutBasisChange___1_t9__,0,5,10,15,4,9,14,3,8,13,2,7,12,1,6,11);
  _tmp69_4__ = PERMUT_16(SubBytes___1_OutBasisChange___1_t10__,0,5,10,15,4,9,14,3,8,13,2,7,12,1,6,11);
  _tmp69_5__ = PERMUT_16(SubBytes___1_OutBasisChange___1_t8__,0,5,10,15,4,9,14,3,8,13,2,7,12,1,6,11);
  _tmp69_6__ = PERMUT_16(SubBytes___1_OutBasisChange___1_t5__,0,5,10,15,4,9,14,3,8,13,2,7,12,1,6,11);
  _tmp69_7__ = PERMUT_16(SubBytes___1_OutBasisChange___1_t4__,0,5,10,15,4,9,14,3,8,13,2,7,12,1,6,11);
  MixColumn___1__tmp3_ = PERMUT_16(_tmp69_0__,1,2,3,0,5,6,7,4,9,10,11,8,13,14,15,12);
  MixColumn___1__tmp4_ = XOR(_tmp69_0__,MixColumn___1__tmp3_);
  MixColumn___1__tmp5_ = PERMUT_16(_tmp69_7__,1,2,3,0,5,6,7,4,9,10,11,8,13,14,15,12);
  MixColumn___1__tmp6_ = XOR(MixColumn___1__tmp4_,MixColumn___1__tmp5_);
  MixColumn___1__tmp8_ = XOR(_tmp69_7__,MixColumn___1__tmp5_);
  MixColumn___1__tmp9_ = PERMUT_16(MixColumn___1__tmp8_,2,3,0,1,6,7,4,5,10,11,8,9,14,15,12,13);
  *cipher__7__ = XOR(MixColumn___1__tmp6_,MixColumn___1__tmp9_);
  MixColumn___1__tmp14_ = XOR(MixColumn___1__tmp8_,MixColumn___1__tmp4_);
  MixColumn___1__tmp15_ = PERMUT_16(_tmp69_6__,1,2,3,0,5,6,7,4,9,10,11,8,13,14,15,12);
  MixColumn___1__tmp16_ = XOR(MixColumn___1__tmp14_,MixColumn___1__tmp15_);
  MixColumn___1__tmp18_ = XOR(_tmp69_6__,MixColumn___1__tmp15_);
  MixColumn___1__tmp19_ = PERMUT_16(MixColumn___1__tmp18_,2,3,0,1,6,7,4,5,10,11,8,9,14,15,12,13);
  *cipher__6__ = XOR(MixColumn___1__tmp16_,MixColumn___1__tmp19_);
  MixColumn___1__tmp22_ = PERMUT_16(_tmp69_5__,1,2,3,0,5,6,7,4,9,10,11,8,13,14,15,12);
  MixColumn___1__tmp23_ = XOR(MixColumn___1__tmp18_,MixColumn___1__tmp22_);
  MixColumn___1__tmp25_ = XOR(_tmp69_5__,MixColumn___1__tmp22_);
  MixColumn___1__tmp26_ = PERMUT_16(MixColumn___1__tmp25_,2,3,0,1,6,7,4,5,10,11,8,9,14,15,12,13);
  *cipher__5__ = XOR(MixColumn___1__tmp23_,MixColumn___1__tmp26_);
  MixColumn___1__tmp31_ = XOR(MixColumn___1__tmp25_,MixColumn___1__tmp4_);
  MixColumn___1__tmp32_ = PERMUT_16(_tmp69_4__,1,2,3,0,5,6,7,4,9,10,11,8,13,14,15,12);
  MixColumn___1__tmp33_ = XOR(MixColumn___1__tmp31_,MixColumn___1__tmp32_);
  MixColumn___1__tmp35_ = XOR(_tmp69_4__,MixColumn___1__tmp32_);
  MixColumn___1__tmp36_ = PERMUT_16(MixColumn___1__tmp35_,2,3,0,1,6,7,4,5,10,11,8,9,14,15,12,13);
  *cipher__4__ = XOR(MixColumn___1__tmp33_,MixColumn___1__tmp36_);
  MixColumn___1__tmp41_ = XOR(MixColumn___1__tmp35_,MixColumn___1__tmp4_);
  MixColumn___1__tmp42_ = PERMUT_16(_tmp69_3__,1,2,3,0,5,6,7,4,9,10,11,8,13,14,15,12);
  MixColumn___1__tmp43_ = XOR(MixColumn___1__tmp41_,MixColumn___1__tmp42_);
  MixColumn___1__tmp45_ = XOR(_tmp69_3__,MixColumn___1__tmp42_);
  MixColumn___1__tmp46_ = PERMUT_16(MixColumn___1__tmp45_,2,3,0,1,6,7,4,5,10,11,8,9,14,15,12,13);
  *cipher__3__ = XOR(MixColumn___1__tmp43_,MixColumn___1__tmp46_);
  MixColumn___1__tmp49_ = PERMUT_16(_tmp69_2__,1,2,3,0,5,6,7,4,9,10,11,8,13,14,15,12);
  MixColumn___1__tmp50_ = XOR(MixColumn___1__tmp45_,MixColumn___1__tmp49_);
  MixColumn___1__tmp52_ = XOR(_tmp69_2__,MixColumn___1__tmp49_);
  MixColumn___1__tmp53_ = PERMUT_16(MixColumn___1__tmp52_,2,3,0,1,6,7,4,5,10,11,8,9,14,15,12,13);
  *cipher__2__ = XOR(MixColumn___1__tmp50_,MixColumn___1__tmp53_);
  MixColumn___1__tmp56_ = PERMUT_16(_tmp69_1__,1,2,3,0,5,6,7,4,9,10,11,8,13,14,15,12);
  MixColumn___1__tmp57_ = XOR(MixColumn___1__tmp52_,MixColumn___1__tmp56_);
  MixColumn___1__tmp59_ = XOR(_tmp69_1__,MixColumn___1__tmp56_);
  MixColumn___1__tmp60_ = PERMUT_16(MixColumn___1__tmp59_,2,3,0,1,6,7,4,5,10,11,8,9,14,15,12,13);
  *cipher__1__ = XOR(MixColumn___1__tmp57_,MixColumn___1__tmp60_);
  MixColumn___1__tmp64_ = XOR(MixColumn___1__tmp59_,MixColumn___1__tmp3_);
  MixColumn___1__tmp67_ = PERMUT_16(MixColumn___1__tmp4_,2,3,0,1,6,7,4,5,10,11,8,9,14,15,12,13);
  *cipher__0__ = XOR(MixColumn___1__tmp64_,MixColumn___1__tmp67_);

}


#define usuba(v0,v1,v2,v3,v4,v5,v6,v7)                              \
  AES__(v0,v1,v2,v3,v4,v5,v6,v7,&v0,&v1,&v2,&v3,&v4,&v5,&v6,&v7)
